package com.zhao.wechat.domain;

import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.scheduling.annotation.EnableScheduling;


import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;

/**
 * 用户实体类
 */
@Data
@Builder
@Entity
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "user_info")
@EntityListeners(value = AuditingEntityListener.class)
public class UserInfo implements Serializable {

	/** 分布式数据主键**/
	@Id
	@Column(name = "id")
	private Long id;

	/**微信号**/
	@Column(name = "wechat_id")
	private String wechatId;

	/** 昵称 **/
	@Column(name = "nickname")
	private String nickname;

	/** 区县的行政区划编码 **/
	@Column(name = "district_id")
	private String districtId;

	/**地理位置**/
	@Column(name = "city")
	private String city;

	/**用户类型 **/
	@Column(name = "type")
	private Integer type;

	/** 想识时间**/
	@Column(name = "scq_time")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date scqTime;


	/** 出生时间 **/
	@Column(name = "bir_time")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date birTime;

	/** 创建时间 **/
	@Column(name = "create_time")
	@CreatedDate
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date createTime;

	/** 更新时间 **/
	@Column(name = "update_time")
	@LastModifiedDate
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date updateTime;
}
